/*
function createArr(length: number, value: any): any[] {
    let res: any[] = []
    for (let i = 0; i < length; i++) {
        res.push(value)
    }

    return res
}
const arr = createArr(10, false)
console.log(arr);
*/


// 泛型
// T 可以理解为一个可变的数据类型，具体类型取决于调用的时候传递的类型
function createArr<T>(length: number, value: T): T[] {
    let res: T[] = []
    for (let i = 0; i < length; i++) {
        res.push(value)
    }

    return res
}
const arr: boolean[] = createArr<boolean>(10, false)
const arr2: string[] = createArr<string>(8, '小花')


interface iUser {
    name: string
    age: number
}
const arr3: iUser[] = createArr<iUser>(5, { name: '张三', age: 18 })

console.log(arr);


// 定义数组
let list: Array<number | string> = [1, '你好']
let list2: (number | string)[] = [1, '你好']
// 在数组中添加内容
list.push(110)


// 元组： 明确已知元素的个数以及每个元素的数据类型的时候我们可以使用元组
let list3: [number, string, number] = [1, '你好', 110]

// list3.push(111)

// console.log(list3);
